package ophiux.wechatpay.sdk.request;

import java.util.HashMap;
import java.util.Map;

import ophiux.wechatpay.sdk.response.ReverseResponse;

/**
 * 撤销订单  	请求参数
 * <br/>请求地址:https://api.mch.weixin.qq.com/secapi/pay/reverse  服务商独属 	需要证书
 * <br/><h1>创建人: hehailong</h1><br/>
 * 创建时间：2017-7-11 下午2:52:50<br/>
 * 修改记录1：
 */
public class ReverseRequest extends OphiuxBaseRequest<ReverseResponse> {
	//字段名	变量名	必填	类型	示例值	描述
	
	/**==========   二选一    ===========*/
	/** 微信订单号 transaction_id 否 String(32) 1217752501201407033233368018 微信的订单号，优先使用 */
	private String transaction_id; 
	/** 商户订单号 out_trade_no 是 String(32) 1217752501201407033233368018 商户系统内部的订单号,transaction_id、out_trade_no二选一，如果同时存在优先级：transaction_id> out_trade_no */
	private String out_trade_no; 
	/**==========   二选一    ===========*/
	
	/** 随机字符串 nonce_str 是 String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串，不长于32位。推荐随机数生成算法 */
	private String nonce_str; 
	/** 签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名，详见签名生成算法 */
	private String sign; 

	
	@Override
	public String getApiMethod() {
		return "POST";
	}

	@Override
	public String getApiVersion() {
		return null;
	}

	@Override
	public Map getTextParam() {
		Map<String, String>  map = new HashMap<String, String>();
		map.put("transaction_id", transaction_id);
		map.put("out_trade_no", out_trade_no);
		map.put("nonce_str", nonce_str);
		map.put("sign", sign);
		
		return map;
	}

	@Override
	public Class<ReverseResponse> getResponseClass() {
		return ReverseResponse.class;
	}

	public String getTransaction_id() {
		return transaction_id;
	}

	public void setTransaction_id(String transaction_id) {
		this.transaction_id = transaction_id;
	}

	public String getOut_trade_no() {
		return out_trade_no;
	}

	public void setOut_trade_no(String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}

	public String getNonce_str() {
		return nonce_str;
	}

	public void setNonce_str(String nonce_str) {
		this.nonce_str = nonce_str;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

}
